package com.wlyuan.open.scanner.domain.quotation;

import com.wlyuan.open.scanner.domain.BaseDomain;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

/**
 * @author lijing
 * @description
 */
@EqualsAndHashCode(callSuper = true)
@Data
@ToString(callSuper = true)
public class Quotation extends BaseDomain {

    private Long id;

    @ApiModelProperty(value = "运单ID")
    private Long waybillId;
    @ApiModelProperty("运输模式")
    private Integer transportMode;
    @ApiModelProperty("总重量")
    private BigDecimal totalWeight;
    @ApiModelProperty("总体积")
    private BigDecimal totalVolume;
    @ApiModelProperty("总价值")
    private BigDecimal totalValue;
    @ApiModelProperty("总数量")
    private Integer totalQuantity;

    @ApiModelProperty("承运方信息")
    private QuotationUp carrier;
    @ApiModelProperty("客户信息")
    private QuotationDown customer;

    @ApiModelProperty("运输费")
    private BigDecimal transportFee;
    @ApiModelProperty("零担费")
    private BigDecimal lessCost;
    @ApiModelProperty("整车费")
    private BigDecimal fullCost;
    @ApiModelProperty("提货费")
    private BigDecimal pickCost;
    @ApiModelProperty("送货费")
    private BigDecimal deliveryCost;
    @ApiModelProperty("装货费")
    private BigDecimal onLoadCost;
    @ApiModelProperty("卸货费")
    private BigDecimal offLoadCost;
    @ApiModelProperty("保险费")
    private BigDecimal insuranceCost;
    @ApiModelProperty("税费")
    private BigDecimal taxCost;
    @ApiModelProperty("附加费")
    private BigDecimal additionCost;
    @ApiModelProperty("预付款")
    private BigDecimal payment;
    @ApiModelProperty("货到付款")
    private BigDecimal payable;
    @ApiModelProperty("代收货款")
    private BigDecimal paysub;
    @ApiModelProperty("总费用")
    private BigDecimal totalCost;
    @ApiModelProperty("最小费用")
    private BigDecimal minCost;

    @ApiModelProperty("发起方,按单报价或者合约的创建租户,默认为运单的创建租户")
    private Long issuer;

    @ApiModelProperty("费用明细")
    private List<QuotationSurcharge> fees;

    @ApiModelProperty(value = "合约ID")
    private Long templateId;

    @ApiModelProperty(value = "是否价格重算")
    private Integer refresh;

    @ApiModelProperty("备注")
    private String remarks;

    private LocalDateTime createAt;
}
